Custom Elementsの練習
22:14:44
例: “time-formatted” | Custom elements
のsample codeを動かしてみる
/icons2/CodeSandBox.icon
https://codesandbox.io/s/autumn-monad-6uomd?file=/package.json
22:28:11
parcel
で構築されている
何故か
Null条件演算子
を使うとcompile errorが出る
22:30:30
/icons/javascript.icon
に切り替えた
/icons2/CodeSandBox.icon
https://codesandbox.io/s/cold-thunder-zbfz4?file=/src/index.js
Custom Elements
を試すだけだし、まあ型なしでもなんとかなるだろう
最終的にはScrapboxUserScriptで使いたいのだし
22:37:10
例: “time-formatted” | Custom elements
は動いた
CodeSandbox
特有の現象
hot reloadを使うと、
CustomElementRegistry.define()
が二回走ってしまい、結果二重定義エラーが出てしまう
手動で
F5
を押せば直る
CustomElementRegistry.get()
を使って既に定義済みかどうかを確認すればエラーを回避できるか。
22:44:52
Custom Elements
の定義を別ファイルにしてみた
勿論ちゃんと動く
22:48:31
/icons/javascript.icon
から
Custom Elements
の動的追加を試してみた
問題なく追加できている
これなら、
scrapbox-card-bubble-2
で動的にcardを追加することもできそうだな
22:50:33
Custom elements
を試す
/icons2/CodeSandBox.icon
https://codesandbox.io/s/hardcore-flower-1xtkl
HTMLElement.observedAttributes
static propertyで、変更を監視したい属性名のリストを返す
監視対象の属性が変更されると、
HTMLElement.attributeChangedCallback()
が呼び出される
この中で再renderすればいい
23:04:19
Custome Elementのlife cycle
を書く
23:18:59 書いた
References
Using custom elements - Web Components | MDN
#2020-12-09
22:14:50